package com.fowo.api.model.report.receivable;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.validator.EnumsString;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 应收报告 导入导出辅助模型 */
@Getter
@Setter
public class ReportReceivableExcelPo {

  @Size(max = 50, message = "店铺长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺")
  private String sidsShopName;

  @ExcelIgnore
  @ExcelProperty(value = "店铺")
  private Long sids;

  @Size(max = 50, message = "店铺名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺名称")
  private String storeName;

  @Size(max = 50, message = "站点长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "站点")
  private String midsCountry;

  @ExcelIgnore
  @ExcelProperty(value = "站点")
  private Long mids;

  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "结算月")
  private java.util.Date settleMonth;

  @EnumsString(
    value = { "已对账", "未对账" },
    message = "对账状态的可用值为 “已对账”, “未对账” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "对账状态")
  private String archiveStatus;

  @Size(max = 50, message = "币种长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "币种")
  private String currencyCode;

  @NumberFormat("0.00")
  @ExcelProperty(value = "期初余额")
  private java.math.BigDecimal beginningBalanceCurrencyAmount;

  @NumberFormat("0.00")
  @ExcelProperty(value = "收入")
  private java.math.BigDecimal incomeAmount;

  @NumberFormat("0.00")
  @ExcelProperty(value = "退款")
  private java.math.BigDecimal refundAmount;

  @NumberFormat("0.00")
  @ExcelProperty(value = "支出")
  private java.math.BigDecimal spendAmount;

  @NumberFormat("0.00")
  @ExcelProperty(value = "其他")
  private java.math.BigDecimal other;

  @NumberFormat("0.00")
  @ExcelProperty(value = "转账成功金额")
  private java.math.BigDecimal convertedSuccessAmount;

  @NumberFormat("0.00")
  @ExcelProperty(value = "转账失败金额")
  private java.math.BigDecimal convertedFailedAmount;

  @NumberFormat("0.00")
  @ExcelProperty(value = "期末余额")
  private java.math.BigDecimal endingBalance;

  @Size(max = 50, message = "备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "备注")
  private String remark;

  @EnumsString(
    value = { "不相符", "相符" },
    message = "转账/到账金额的可用值为 “不相符”, “相符” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "转账/到账金额")
  private String receivedState;

  @Size(max = 50, message = "币种icon长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "币种icon")
  private String currencyIcon;
}
